//package com.inspur.edp.udt.generator.api.typeprocessers.datareaders;
//
//import com.inspur.edp.udt.generator.UdtGeneratorContext;
//
//public class DefaultMultiColumnsReadDataGenerator extends UdtDataReaderReadDataMethodGenerator
//{
//	private String columnName;
//	private UdtGeneratorContext udtGenCtx;
//	public DefaultMultiColumnsReadDataGenerator(UdtGeneratorContext udtGenCtx, String columnName)
//	{
//		super();
//		this.udtGenCtx = udtGenCtx;
//		this.columnName = columnName;
//	}
//	@Override
//	protected BlockSyntax BuildMethodBody()
//	{
//			//SyntaxFactory.LocalDeclarationStatement(
//			// SyntaxFactory.VariableDeclaration(
//			//TypeUtils.GetTypeSyntax(udtGenCtx.RootDataInterfaceType))
//			// .WithVariables(
//			//     SyntaxFactory.SingletonSeparatedList(
//			//         SyntaxFactory.VariableDeclarator(
//			//             SyntaxFactory.Identifier("cdata"))
//			//         .WithInitializer(
//			//             SyntaxFactory.EqualsValueClause(
//			//                 SyntaxFactory.BinaryExpression(
//			//                     SyntaxKind.AsExpression,
//			//                     SyntaxFactory.IdentifierName("data"),
//			//                     TypeUtils.GetTypeSyntax(udtGenCtx.RootDataInterfaceType))))))),
//		return SyntaxFactory.Block(GetTypeStatement(), SyntaxFactory.LocalDeclarationStatement(SyntaxFactory.VariableDeclaration(SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.ObjectKeyword))).WithVariables(SyntaxFactory.<VariableDeclaratorSyntax>SingletonSeparatedList(SyntaxFactory.VariableDeclarator(SyntaxFactory.Identifier("propertyValue")).WithInitializer(SyntaxFactory.EqualsValueClause(SyntaxFactory.InvocationExpression(SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, SyntaxFactory.IdentifierName("reader"), SyntaxFactory.IdentifierName("ReadValue"))).WithArgumentList(SyntaxFactory.ArgumentList(SyntaxFactory.<ArgumentSyntax>SingletonSeparatedList(SyntaxFactory.Argument(SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(columnName))))))))))), GetConverterStatement());
//	}
//
//	private LocalDeclarationStatementSyntax GetTypeStatement()
//	{
//		//var type = data.GetType();
//		return SyntaxFactory.LocalDeclarationStatement(SyntaxFactory.VariableDeclaration(SyntaxFactory.IdentifierName("var")).WithVariables(SyntaxFactory.SingletonSeparatedList(SyntaxFactory.VariableDeclarator(SyntaxFactory.Identifier("type")).WithInitializer(SyntaxFactory.EqualsValueClause(SyntaxFactory.InvocationExpression(SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, SyntaxFactory.IdentifierName("data"), SyntaxFactory.IdentifierName("GetType"))))))));
//	}
//
//	private ExpressionStatementSyntax GetConverterStatement()
//	{
//		return SyntaxFactory.ExpressionStatement(SyntaxFactory.AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, SyntaxFactory.IdentifierName("data"), SyntaxFactory.CastExpression(TypeUtils.GetTypeSyntax(ICefData.class), SyntaxFactory.InvocationExpression(SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, TypeUtils.GetTypeSyntax(JsonConvert.class), SyntaxFactory.IdentifierName("DeserializeObject"))).WithArgumentList(SyntaxFactory.ArgumentList(SyntaxFactory.<ArgumentSyntax>SeparatedList(new SyntaxNodeOrToken[] { SyntaxFactory.Argument(SyntaxFactory.InvocationExpression(SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, TypeUtils.GetTypeSyntax(Convert.class), SyntaxFactory.IdentifierName("ToString"))).WithArgumentList(SyntaxFactory.ArgumentList(SyntaxFactory.SingletonSeparatedList(SyntaxFactory.Argument(SyntaxFactory.IdentifierName("propertyValue")))))), SyntaxFactory.Token(SyntaxKind.CommaToken), SyntaxFactory.Argument(SyntaxFactory.IdentifierName("type")) }))))));
//
//		//return SyntaxFactory.ExpressionStatement(
//		//    SyntaxFactory.AssignmentExpression(
//		//        SyntaxKind.SimpleAssignmentExpression,
//		//        SyntaxFactory.IdentifierName("cdata"),
//		//        SyntaxFactory.InvocationExpression(
//		//                SyntaxFactory.MemberAccessExpression(
//		//                    SyntaxKind.SimpleMemberAccessExpression,
//		//                    TypeUtils.GetTypeSyntax(typeof(JsonConvert)),
//		//                    SyntaxFactory.GenericName(
//		//                            SyntaxFactory.Identifier("DeserializeObject"))
//		//                        .WithTypeArgumentList(
//		//                            SyntaxFactory.TypeArgumentList(
//		//                                SyntaxFactory.SingletonSeparatedList<TypeSyntax>(
//		//                                    TypeUtils.GetTypeSyntax(udtGenCtx.gen))))))
//		//            .WithArgumentList(
//		//                SyntaxFactory.ArgumentList(
//		//                    SyntaxFactory.SingletonSeparatedList(
//		//                        SyntaxFactory.Argument(
//		//                            SyntaxFactory.InvocationExpression(
//		//                                    SyntaxFactory.MemberAccessExpression(
//		//                                        SyntaxKind.SimpleMemberAccessExpression,
//		//                                        TypeUtils.GetTypeSyntax(typeof(Convert)),
//		//                                        SyntaxFactory.IdentifierName("ToString")))
//		//                                .WithArgumentList(
//		//                                    SyntaxFactory.ArgumentList(
//		//                                        SyntaxFactory.SingletonSeparatedList(
//		//                                            SyntaxFactory.Argument(
//		//                                                SyntaxFactory.IdentifierName("propertyValue")))))))))));
//	}
//}